假定数组A[nSize]中有多个0元素,写一个函数,将A中所有非0元素一次移动数组A的前端A[i](0<=i<=nSize),

来源:百度知道 编辑:UC知道 时间:2024/09/21 03:34:20
假定数组A[nSize]中有多个0元素,写一个函数,将A中所有非0元素一次移动数组A的前端A[i](0<=i<=nSize),并将i作为函数的返回值.

我是菜鸟,请问各位大大,这题用c和java分别如何写啊。在线等。。。

//C
#include <stdio.h>
#define nSize 20
int fun(int A[])
{
int i,j,tmp;
for (i = 0; i < nSize-1; ++i)
{
if (A[i] == 0)
{
for (j = i+1; j < nSize; ++j)
{
if (A[j] != 0)
{
tmp = A[i];
A[i] = A[j];
A[j] = tmp;
break;
}
}
}
}
for (i = 0,tmp = 0; i < nSize; ++i)
if (A[i] != 0) tmp++;
return tmp;
}
void main()
{
int i,count;
int A[nSize]={0,1,2,3,4,0,6,7,8,9,0,11,12,13,14,0,16,17,18,0};
count = fun(A);
for (i = 0; i < nSize; ++i)printf("%d,", A[i]);
printf("\b\t\ni = %d\n", count);
}

写个java的,抛砖引玉

public int getCount(int[] A){
int count = 0;
for(int i=0; i<A.length; i++){
if(A[i] != 0){
int temp = A[0];
A[0] = A[i];

假定一维数组a[n]中的元素值均在[0,200]区间内,用C++编写一个算法 假定一维数组a[n]中的每个元素值均在[0,200]区间内,用C++编写一个算法,统计在个区间内的元素数 赋给数组a(不使用元素a{0]),在将下标为奇数的元素求和,下标为偶数的元素按升序排序 对数组A中的N(0<N<L00)个整数从小到大进行连续编号,要求不能改变数组A中元素的顺序 编写一个程序,逆序放置a数组中的元素 C语言:用指针方法,交换数组A和数组B的对应元素。 用new分配一个二维数组a[6][6],从键盘输入元素值,求出数组中的最大元素及下标。 用c语言编写:从键盘输入10个数存入数组a中,统计数组下标是奇数且数组元素值为偶数的元素个数 若有说明:int a[3][4];则数组a中各元素是() 给定一个具有10个元素的一维数组a,求a中各元素的平均值